#!/bin/bash

# 人脸检测系统停止脚本
# 作者: fsserver
# 日期: 2024-01-01

APP_NAME="face-detection-system"
PID_FILE="${APP_NAME}.pid"

# 检查PID文件是否存在
if [ ! -f "$PID_FILE" ]; then
    echo "PID文件不存在，应用可能未运行"
    exit 1
fi

# 读取PID
PID=$(cat "$PID_FILE")

# 检查进程是否存在
if ! ps -p "$PID" > /dev/null 2>&1; then
    echo "进程 $PID 不存在，删除PID文件"
    rm -f "$PID_FILE"
    exit 1
fi

echo "正在停止 $APP_NAME (PID: $PID)..."

# 发送TERM信号
kill "$PID"

# 等待进程结束
for i in {1..30}; do
    if ! ps -p "$PID" > /dev/null 2>&1; then
        echo "应用已成功停止"
        rm -f "$PID_FILE"
        exit 0
    fi
    echo "等待进程结束... ($i/30)"
    sleep 1
done

# 如果进程仍然存在，强制杀死
echo "进程未正常结束，强制停止..."
kill -9 "$PID"

# 再次检查
if ps -p "$PID" > /dev/null 2>&1; then
    echo "无法停止进程 $PID"
    exit 1
else
    echo "应用已强制停止"
    rm -f "$PID_FILE"
    exit 0
fi 